[INFO] fetching crate base-coroutine 0.2.0...
[INFO] fixing base-coroutine-0.2.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate base-coroutine 0.2.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate base-coroutine 0.2.0
[INFO] finished tweaking crates.io crate base-coroutine 0.2.0
[INFO] tweaked toml for crates.io crate base-coroutine 0.2.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate base-coroutine 0.2.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 66 packages to latest compatible versions
[INFO] [stderr]       Adding object-collection v0.0.4 (available: v0.0.5)
[INFO] [stderr]       Adding timer-utils v0.0.3 (available: v0.0.4)
[INFO] [stderr]       Adding windows-sys v0.42.0 (available: v0.61.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9
[INFO] running `Command { std: "docker" "start" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] [stderr]    Compiling jemalloc-sys v0.5.4+5.3.0-patched
[INFO] [stderr]     Checking object-collection v0.0.3
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking st3 v0.4.1
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking object-collection v0.0.4
[INFO] [stderr]    Compiling base-coroutine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]     Checking timer-utils v0.0.3
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/stack/sys/unix.rs (3 fixes)
[INFO] [stderr]        Fixed src/context/mod.rs (3 fixes)
[INFO] [stderr]        Fixed src/epoll.rs (1 fix)
[INFO] [stderr]        Fixed src/scheduler.rs (1 fix)
[INFO] [stderr]        Fixed src/event_loop/selector/mod.rs (1 fix)
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: base-coroutine v0.2.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: Cargo.toml: version requirement `0.5.2+5.3.0-patched` for dependency `jemalloc-sys` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: `base-coroutine` (manifest) generated 1 warning
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling base-coroutine v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stdout]    --> src/coroutine.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]     = note: enum has no representation hint
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]    --> src/coroutine.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/monitor.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stdout]    |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `base-coroutine` (lib) due to 51 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |             COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             SCHEDULER_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |             let val = COROUTINE_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let val = SCHEDULER_ID.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  8 - static mut SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  8 + static SCHEDULER_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/id.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 COROUTINE_ID.store(1, Ordering::SeqCst);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout]  6 - static mut COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]  6 + static COROUTINE_ID: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(1));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `CoroutineResult<Yield, Return>`, which is not FFI-safe
[INFO] [stdout]    --> src/coroutine.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |     marker: PhantomData<&'a extern "C" fn(Param) -> CoroutineResult<Yield, Return>>,
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
[INFO] [stdout]     = note: enum has no representation hint
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]    --> src/coroutine.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub enum CoroutineResult<Yield, Return> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     unsafe { INSTANCE.local_queue() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout] 11 + static INSTANCE: Lazy<Queue> = Lazy::new(Queue::default);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             LOCAL_QUEUES.get_or_init(|| {
[INFO] [stdout] 34 | |                 (0..local_queues)
[INFO] [stdout] 35 | |                     .map(|_| WorkStealQueue::new(local_capacity))
[INFO] [stdout] 36 | |                     .collect()
[INFO] [stdout] 37 | |             });
[INFO] [stdout]    | |______________^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 |         unsafe { GLOBAL_QUEUE.push(ptr).unwrap() }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout] 19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/work_steal.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 | /             LOCAL_QUEUES
[INFO] [stdout] 62 | |                 .get_mut()
[INFO] [stdout]    | |__________________________^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout] 22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = GLOBAL_QUEUE.push(half.pop().unwrap());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 GLOBAL_QUEUE.push(item).map_err(|e| match e {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:183:46
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     if let Ok(popped_item) = GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:190:36
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 let local_queues = LOCAL_QUEUES.get_mut().unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:214:19
[INFO] [stdout]     |
[INFO] [stdout] 214 |             match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 | /             GLOBAL_LOCK
[INFO] [stdout] 249 | |                 .compare_exchange(false, true, Ordering::Relaxed, Ordering::Relaxed)
[INFO] [stdout]     | |____________________________________________________________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 match GLOBAL_QUEUE.pop() {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/work_steal.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             GLOBAL_LOCK.store(false, Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  17 - static mut GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]  17 + static GLOBAL_LOCK: Lazy<AtomicBool> = Lazy::new(|| AtomicBool::new(false));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout] 24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/scheduler.rs:98:55
[INFO] [stdout]    |
[INFO] [stdout] 98 |             || unsafe { !SUSPEND_TABLE.is_empty() || !SYSTEM_CALL_TABLE.is_empty() }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout] 22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:169:33
[INFO] [stdout]     |
[INFO] [stdout] 169 | / ...                   SUSPEND_TABLE.insert_raw(
[INFO] [stdout] 170 | | ...                       timer_utils::add_timeout_time(delay_time),
[INFO] [stdout] 171 | | ...                       coroutine as *mut _ as *mut c_void,
[INFO] [stdout] 172 | | ...                   );
[INFO] [stdout]     | |_______________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         unsafe { SYSTEM_CALL_TABLE.insert(coroutine.get_id(), coroutine) };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:201:25
[INFO] [stdout]     |
[INFO] [stdout] 201 |             for _ in 0..SUSPEND_TABLE.len() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:202:38
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 if let Some(entry) = SUSPEND_TABLE.front() {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     if let Some(mut entry) = SUSPEND_TABLE.pop_front() {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  24 - static mut SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]  24 + static SUSPEND_TABLE: Lazy<TimerList> = Lazy::new(TimerList::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scheduler.rs:238:27
[INFO] [stdout]     |
[INFO] [stdout] 238 |         if let Some(co) = SYSTEM_CALL_TABLE.remove(&co_id) {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  22 - static mut SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]  22 + static SYSTEM_CALL_TABLE: Lazy<ObjectMap<usize>> = Lazy::new(ObjectMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/scheduler.rs:260:18
[INFO] [stdout]     |
[INFO] [stdout] 260 |         unsafe { std::mem::transmute(10usize) }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout]     = note: `#[warn(integer_to_ptr_transmutes)]` on by default
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 260 -         unsafe { std::mem::transmute(10usize) }
[INFO] [stdout] 260 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(10usize) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/monitor.rs:41:47
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as libc::sighandler_t;
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 41 |             act.sa_sigaction = sigurg_handler as *const () as libc::sighandler_t;
[INFO] [stdout]    |                                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/monitor.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &mut GLOBAL }
[INFO] [stdout]    |                  ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe { &raw mut GLOBAL }
[INFO] [stdout]    |                   +++
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    |
[INFO] [stdout] 11 - static mut GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout] 11 + static GLOBAL: Lazy<Monitor> = Lazy::new(Monitor::new);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:133:41
[INFO] [stdout]     |
[INFO] [stdout] 133 |             if let Some(local_queues) = LOCAL_QUEUES.get_mut() {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 if !GLOBAL_QUEUE.is_empty() {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:19:19
[INFO] [stdout]     |
[INFO] [stdout]  19 - pub(crate) static mut GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]  19 + pub(crate) static GLOBAL_QUEUE: Lazy<ConcurrentQueue<*mut c_void>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/monitor.rs:166:41
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         let idle_less = LOCAL_QUEUES.get_mut().unwrap().get_mut(min.1).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]    --> src/work_steal.rs:22:19
[INFO] [stdout]     |
[INFO] [stdout]  22 - pub(crate) static mut LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]  22 + pub(crate) static LOCAL_QUEUES: OnceCell<Box<[WorkStealQueue]>> = OnceCell::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:198:41
[INFO] [stdout]     |
[INFO] [stdout] 198 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 198 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 210 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 210 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/monitor.rs:220:41
[INFO] [stdout]     |
[INFO] [stdout] 220 |         register_handler(sigurg_handler as libc::sighandler_t);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 220 |         register_handler(sigurg_handler as *const () as libc::sighandler_t);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let index = INDEX.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 INDEX.store(1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  85 - static mut INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]  85 + static INDEX: Lazy<AtomicUsize> = Lazy::new(|| AtomicUsize::new(0));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             EVENT_LOOPS.get_mut(index % num_cpus::get()).unwrap()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  87 - static mut EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]  87 + static EVENT_LOOPS: Lazy<Box<[EventLoop]>> = Lazy::new(|| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |             WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |             WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:182:16
[INFO] [stdout]     |
[INFO] [stdout] 182 |             if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:187:25
[INFO] [stdout]     |
[INFO] [stdout] 187 |                         WRITABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     READABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:207:16
[INFO] [stdout]     |
[INFO] [stdout] 207 |             if WRITABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 if READABLE_RECORDS.contains(&fd) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         READABLE_TOKEN_RECORDS.remove(&fd).unwrap_or(0),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     WRITABLE_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |             READABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  77 - static mut READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  77 + static READABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |             READABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             WRITABLE_RECORDS.insert(fd);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  81 - static mut WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]  81 + static WRITABLE_RECORDS: Lazy<HashSet<libc::c_int>> = Lazy::new(HashSet::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             WRITABLE_TOKEN_RECORDS.insert(fd, token);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:263:21
[INFO] [stdout]     |
[INFO] [stdout] 263 |                     READABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  79 - static mut READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  79 + static READABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/event_loop/mod.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     WRITABLE_TOKEN_RECORDS.remove(&fd);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  83 - static mut WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]  83 + static WRITABLE_TOKEN_RECORDS: Lazy<HashMap<libc::c_int, usize>> = Lazy::new(HashMap::new);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/event_loop/mod.rs:298:18
[INFO] [stdout]     |
[INFO] [stdout] 298 |         unsafe { std::mem::transmute(val) }
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance_mut` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 298 -         unsafe { std::mem::transmute(val) }
[INFO] [stdout] 298 +         unsafe { &mut *std::ptr::with_exposed_provenance_mut::<c_void>(val) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `base-coroutine` (lib test) due to 51 previous errors; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9", kill_on_drop: false }`
[INFO] [stdout] 0d1870085846cd17c45c5f8e83bd76a2627cf6352a43fb016200e4804d4098a9
